#ifndef __OLED_H
#define __OLED_H
#include "system.h"
typedef void (*pOledInit)(void);
typedef void (*pOledClear)(void);
typedef void (*pOledShowChar)(uint8_t, uint8_t, char);
typedef void (*pOledShowString)(uint8_t, uint8_t, char *);
typedef void (*pOledShowNum)(uint8_t, uint8_t, uint32_t, uint8_t);
typedef void (*pOledShowSignedNum)(uint8_t, uint8_t, int32_t, uint8_t);
typedef void (*pOledShowHexNum)(uint8_t, uint8_t, uint32_t, uint8_t);
typedef void (*pOledShowBinNum)(uint8_t, uint8_t, uint32_t, uint8_t);
typedef struct{
    pOledInit           PoledInit;
    pOledClear          PoledClear;
    pOledShowChar       PoledShowChar;
    pOledShowString     PoledShowString;
    pOledShowNum        PoledShowNum;
    pOledShowSignedNum  PoledShowSignedNum;
    pOledShowHexNum     PoledShowHexNum;
    pOledShowBinNum     PoledShowBinNum;   
}oled_t;

oled_t *oledCreate(void);
#if ELECT
void OLED_Init(void);
void OLED_Clear(void);
void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char);
void OLED_ShowString(uint8_t Line, uint8_t Column, char *String);
void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length);
void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
#endif
#endif
